1. Field of the Invention
The present invention is related to error handling and, in particular, to a method and system for processing system errors caused by execution or installation of software applications.
2. Description of the Related Art
One of the important characteristics of software applications is application stability when running under different hardware and software configurations of the computer systems. Application developers generally strive for producing software applications that do not cause fatal errors in the computer system.
Typically, an application installer is used for an automated installation of the software. The application installer installs the application according to system configuration and the execution environment. However, it is not possible to foresee execution of a particular application on every one of a variety of user systems. Also, the application cannot be tested on each of the user systems, and it cannot be modified for each system. Even if standard computer systems are used, the application can execute differently on different systems based on minor configuration differences.
Therefore, each application must be able to effectively handle the errors caused by its execution on a computer system. Effective error handling is needed for user support and efficient correction of the application and for providing updates and patches. Correction and update of the application is particularly important for applications that provide services to other applications as well as for application libraries.
Application development always leaves room for execution errors based on the execution environment and the system configurations. This needs to be taken into account when new software is installed, or when application modules are updated, or when some applications run concurrently.
Accordingly, a system that can determine possible system errors, analyze their causes and eliminate the errors, is needed. The system also needs to be able to correctly process the errors when they are triggered in a computer system.
Existing systems test applications in an emulated execution environment. The emulated execution environments can simulate different system states in order to detect the potential execution errors. Such a system is described in the U.S. Pat. No. 7,203,881. However, not all of the errors detected by simulation can be corrected by correction of the application code. Thus, the problem of error handling after installation and execution of the application becomes critical as a number of applications, updates and application versions grow.
A system described in U.S. Pat. No. 6,378,128 allows for correction of an application installer in order to solve application execution problems. However, this system is ineffective in case of installation of the applications in an enterprise network with a large number of the workstations that can require unique application installers.
Another solution for handling installation errors is performing a system roll-back and using virtualization means for re-installation of the application. This method is described in U.S. Patent Publication No. 2006/0168165 and U.S. Pat. No. 6,691,250. However, these methods do not allow for determination of the error causes. Conventional administration systems have special tools for tracking the system errors. However, the errors are traced and analyzed only after their detection in the real system.
Accordingly, a system and method that effectively handles and prevents application installation and execution errors in computer systems is desired.